#ifndef __ITHREAD_H
#define __ITHREAD_H

/*
Thread interface definition.

I use a loose definition of 'interface', since some methods provide their own implementation here.
*/

class IThread{
private:
    uint8_t _priority;
    uint16_t _execTime;

public:
    virtual void run() = 0;

    uint8_t getPriority(){
        return _priority;
    }

    void setPriority(uint8_t priority){
        _priority = priority;
    }

    uint16_t getExecTime(){
        return _execTime;
    }

    void setExecTime(uint16_t execTime){
        _execTime = execTime;
    }
};

#endif // __ITHREAD_H
